<?php
$sUsuario = "Administrator";
$sClave = "Matias123";
$sEmpresa = "sgicaece.lan";
$dn = 'DC=sgicaece,DC=lan';

$ldapconn = ldap_connect("$sEmpresa",389) or die("ERROR: No se pudo conectar con el Servidor.");

if ($ldapconn){
        ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION,3);
        ldap_set_option($ldapconn, LDAP_OPT_REFERRALS,0);
        $ldapbind = @ldap_bind($ldapconn, "$sUsuario@$sEmpresa", $sClave);
        if ($ldapbind) {

$dn = "OU=Usuarios,OU=MicroCentro,DC=sgicaece,DC=lan";
$filter = "samaccountname=*";

// Busco en la base y filro los usuarios

$search = ldap_search($ldapconn, $dn, $filter)
    or die ("La busqueda fallo");

$entries = ldap_get_entries($ldapconn, $search);

                $registros_encontrados = $entries["count"];
                $registros = "0";

                for($registros > 0; $registros < $registros_encontrados; $registros++) {

		/* Referencia valores entregados AD
                LOGIN = ($entries[$registros][samaccountname][0]);
		Primer Nombre = ($entries[$registros][givenname][0]);
		Ultimo Nombre = ($entries[$registros][sn][0]);
		Email = ($entries[$registros][mail][0]);
		Telefono = ($entries[$registros][telephonenumber][0]);
		Compania = ($entries[$registros][company][0]);
		Rol = ($entries[$registros][title][0]);
		Estado habilitado / deshabilitado = ($entries[$registros][useraccountcontrol][0]);
		*/


		// Mati modifica el host, usuario y password de tu base de datos con tus variables

    		$conBase = mysql_connect("localhost", "root", "chomp");
    		mysql_select_db("symfony", $conBase);

	
		// Consulto si existe usuario 
		$usuarioAuth = ($entries[$registros][samaccountname][0]);
    		$consul ="SELECT * FROM usuario WHERE login ='".$usuarioAuth."'";

    		$result = mysql_query($consul,$conBase) or die(mysql_error());
    	//	echo mysql_num_rows($result);

		// Consutlo si la empresa existe
    		$empresa = ($entries[$registros][company][0]);
		echo "Empresa AD = " . $empresa;
		$empresaIDQuery = "SELECT id FROM empresa WHERE nombre ='".$empresa."'";
		
		$empresaResult = mysql_query($empresaIDQuery, $conBase) or die(mysql_error());
		$empresaID = '';
		$rolID = '';
		if  (mysql_num_rows($empresaResult) > 0) {
	
			$empresaID = mysql_result($empresaResult, 0);
	                //Cosulto Roles de Empresa
        	        $rolDeUsuario = ($entries[$registros][title][0]);
                	$rolIDQuery = "SELECT id FROM Rol WHERE empresa_id ='".$empresaID."' and nombre ='".$rolDeUsuario."'";

                	$rolResult = mysql_query($rolIDQuery, $conBase) or die(mysql_error());
                	if  (mysql_num_rows($rolResult) > 0) {
                        	$rolID = mysql_result($rolResult, 0);
			}else {
				$rolIDQuery = "SELECT id FROM Rol WHERE empresa_id ='".$empresaID."' and nombre ='Cliente Externo'";
	                        $rolResult = mysql_query($rolIDQuery, $conBase) or die(mysql_error());
	                        if  (mysql_num_rows($rolResult) > 0) {
        	                        $rolID = mysql_result($rolResult, 0);
				}
			} 

		}else{
			$empresaID = '1';
			$rolID = 4; 

		}
                // 514 codigo usuario deshabilitado 
                if ($entries[$registros][useraccountcontrol][0] == "514") {
                	$entries[$registros][useraccountcontrol][0] = "1";
                }
                // 512 codigo usuario habilitado
                if ($entries[$registros][useraccountcontrol][0] == "512") {
                        $entries[$registros][useraccountcontrol][0] = "0";
                } 

		$slq = '';

    		if (mysql_num_rows($result) > 0) {
        		//echo "Error, El usuario " .$usuarioAuth. "ya existe";
			$sql = "UPDATE usuario set nombre = '".($entries[$registros][givenname][0])."' , apellido = '".($entries[$registros][sn][0])."' , email = '".($entries[$registros][mail][0])."' , telefono = '".($entries[$registros][telephonenumber][0])."' , passwordExpiryDate = '2016-05-26' , estado = '".($entries[$registros][useraccountcontrol][0])."' , rol_id = '".$rolID."' , empresa_id = '".$empresaID."' WHERE login = '".$usuarioAuth."'"; 
    		} else {
/*			// 514 codigo usuario deshabilitado 
 			if ($entries[$registros][useraccountcontrol][0] == "514") {
			$entries[$registros][useraccountcontrol][0] = "1";
			}
			// 512 codigo usuario habilitado
			if ($entries[$registros][useraccountcontrol][0] == "512") {
			$entries[$registros][useraccountcontrol][0] = "0";
			}	
  */
    		$sql = "INSERT INTO usuario(empresa_id, rol_id, login , nombre , apellido , email , telefono , passwordExpiryDate, estado )
	    VALUES ('".$empresaID."' , '".$rolID."', '".($entries[$registros][samaccountname][0])."' , '".($entries[$registros][givenname][0])."' , '".($entries[$registros][sn][0])."' , '".($entries[$registros][mail][0])."' , '".($entries[$registros][telephonenumber][0])."' , 
'2016-05-26' , '".($entries[$registros][useraccountcontrol][0])."')";



		}
	$sql = mysql_query($sql, $conBase) or die(mysql_error());
	}

        } else {
                echo "Usuario no autenticado...".ldap_error($ldapconn);;
        }
}

ldap_close($ldapconn);
?>
